﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SMSManage
{
    public partial class frmManageRoom : Form
    {
        public frmManageRoom()
        {
            InitializeComponent();
        }

        private void frmManageRoom_Load(object sender, EventArgs e)
        {
            BindData();

        }
        /// <summary>
        /// Bind du lieu ban dau
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void BindData()
        {
            // TODO: This line of code loads data into the 'mark.tbl_Mark_Select_All' table. You can move, or remove it, as needed.
            this.tbl_LocationTableAdapter.tbl_Location_Fill_All(this.room.tbl_Location);

            this.txtRoomName.Text = String.Empty;
            this.txtDes.Text = String.Empty;

            this.cbb_Status.SelectedItem = "Kích hoạt";

            this.btnUpdate.Enabled = false;
            this.btnDel.Enabled = false;
            this.btnAdd.Enabled = true;
            this.btnSearch.Enabled = true;
        }

        /// <summary>
        /// Bind dữ liệu xong
        /// Người sửa cuối: Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
            {
                try
                {
                    this.dataGridView1.Rows[i].Cells["TT"].Value = (i + 1).ToString(); //Thu tu

                    switch (this.dataGridView1.Rows[i].Cells["LocationStatus"].Value.ToString())//Trang thai
                    {
                        case "1":
                            this.dataGridView1.Rows[i].Cells["LocationStatus2"].Value = "Kích hoạt";
                            break;
                        case "0":
                            this.dataGridView1.Rows[i].Cells["LocationStatus2"].Value = "Khóa";
                            break;
                        default:
                            this.dataGridView1.Rows[i].Cells["LocationStatus2"].Value = "Kích hoạt";
                            break;
                    }
                }
                catch (Exception exc)
                {
                    exc.ToString();
                }
            }
            this.dataGridView1.Refresh();
        }

        /// <summary>
        /// Cell được click
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (e.RowIndex > -1)
                {
                    //Enable buttons
                    this.btnUpdate.Enabled = true;
                    this.btnDel.Enabled = true;

                    //disable buttons
                    this.btnAdd.Enabled = false;
                    this.btnSearch.Enabled = false;
                    int LocationID = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex].Cells["LocationID"].Value);


                    this.txtRoomName.Text = this.dataGridView1.Rows[e.RowIndex].Cells["LocationName"].Value.ToString();
                    this.txtDes.Text = this.dataGridView1.Rows[e.RowIndex].Cells["LocationDescription"].Value.ToString();

                    switch (this.dataGridView1.Rows[e.RowIndex].Cells["LocationStatus"].Value.ToString())
                    {
                        case "1":
                            this.cbb_Status.SelectedItem = "Kích hoạt";
                            break;
                        case "0":
                            this.cbb_Status.SelectedItem = "Khóa";
                            break;
                        default:
                            this.cbb_Status.SelectedItem = "Kích hoạt";
                            break;
                    }
                }

            }
            catch (Exception exc)
            {
                exc.ToString();
            } 
        }

        /// <summary>
        /// Xóa phòng
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void btnDel_Click(object sender, EventArgs e)
        {
            try
            {
                int LocationID = int.Parse(this.dataGridView1.Rows[0].Cells["LocationID"].Value.ToString());
                DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter dpRoom =
                    new DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter();

                if (MessageBox.Show("Bạn có thực sự muốn xóa phòng học này?", "Xác nhận",
                    MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    int ok = dpRoom.tbl_Location_Delete_All(LocationID);
                    //Nếu có nhiều hơn 0 bản ghi được xóa
                    if (ok > 0)
                    {
                        MessageBox.Show("Xóa thành công", "Thành công", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        BindData();
                        this.dataGridView1.Refresh();
                    }
                    else
                    {
                        MessageBox.Show("Xóa thất bại", "Thất bại", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception exc)
            {
                exc.ToString();
                MessageBox.Show("Có lỗi xảy ra, xóa thất bại", "Có lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        /// <summary>
        /// Cập nhật phòng
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter dpRoom =
                    new DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter();

                int status = 0;

                int LocationID = Convert.ToInt32(this.dataGridView1.Rows[0].Cells["LocationID"].Value.ToString());

                switch (this.cbb_Status.SelectedItem.ToString())
                {
                    case "Kích hoạt":
                        status = 1;
                        break;
                    case "Khóa":
                        status = 0;
                        break;
                    default:
                        status = 1;
                        break;
                }
                if (MessageBox.Show("Bạn có thực sự muốn cập nhật phòng học này?", "Xác nhận",
                    MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    int ok = dpRoom.tbl_Location_Update_All(this.txtRoomName.Text.Trim(), this.txtDes.Text.Trim(), status, LocationID);
                    //Nếu có hơn 0 bản ghi được cập nhật
                    if (ok > 0)
                    {
                        MessageBox.Show("Cập nhật thành công", "Thành công", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        BindData();
                        this.dataGridView1.Refresh();
                    }
                    else
                    {
                        MessageBox.Show("Cập nhật thất bại", "Thất bại", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }

            }
            catch (Exception exc)
            {
                exc.ToString();
                MessageBox.Show("Có lỗi xảy ra, cập nhật thất bại", "Có lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        /// <summary>
        /// Thêm mới phòng
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có thực sự muốn thêm mới phòng này?", "Xác nhận",
                    MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter dpRoom =
                        new DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter();

                    int status = 0;

                    switch (this.cbb_Status.SelectedItem.ToString())
                    {
                        case "Kích hoạt":
                            status = 1;
                            break;
                        case "Khóa":
                            status = 0;
                            break;
                        default:
                            status = 1;
                            break;
                    }
                    //int ok = 0;
                    int ok = dpRoom.tbl_Location_Insert_All(this.txtRoomName.Text.Trim(), this.txtDes.Text.Trim(), status);

                    if (ok > 0)
                    {
                        //Báo thành công
                        MessageBox.Show("Thêm mới thành công", "Thành công", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        BindData();
                        this.dataGridView1.Refresh();
                    }
                    else
                    {
                        //Báo thất bại
                        MessageBox.Show("Thêm mới thất bại", "Thất bại", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

                }
            }
            catch (Exception exc)
            {
                exc.ToString();
                MessageBox.Show("Có lỗi xảy ra, thêm mới thất bại", "Có lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        /// <summary>
        /// Tìm kiếm phòng
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void btnSearch_Click(object sender, EventArgs e)
        {
            try
            {
                string status = String.Empty;

                string RoomID = String.Empty;
                DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter dpRoom =
                        new DatasetXSD.RoomTableAdapters.tbl_LocationTableAdapter();

                this.dataGridView1.DataSource = dpRoom.Get_tbl_Location_Search_By_All(RoomID, this.txtRoomName.Text.Trim(), this.txtDes.Text.Trim(), status);
                this.dataGridView1.Refresh();

            }
            catch (Exception exc)
            {
                exc.ToString();
                MessageBox.Show("Có lỗi xảy ra, tìm kiếm thất bại", "Có lỗi", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        /// <summary>
        /// Đóng form
        /// Người viết cuối: Nguyễn Minh Tuấn
        /// Ngày cập nhật: 26/03/2011
        /// </summary>
        private void btn_Close_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}
